home *** CD-ROM | disk | FTP | other *** search
-
-
-
- NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- Net::Ping - check a remote host for reachability
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use Net::Ping;
-
- $p = Net::Ping->new();
- print "$host is alive.\n" if $p->ping($host);
- $p->close();
-
- $p = Net::Ping->new("icmp");
- foreach $host (@host_array)
- {
- print "$host is ";
- print "NOT " unless $p->ping($host, 2);
- print "reachable.\n";
- sleep(1);
- }
- $p->close();
-
- $p = Net::Ping->new("tcp", 2);
- while ($stop_time > time())
- {
- print "$host not reachable ", scalar(localtime()), "\n"
- unless $p->ping($host);
- sleep(300);
- }
- undef($p);
-
- # For backward compatibility
- print "$host is alive.\n" if pingecho($host);
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- This module contains methods to test the reachability of
- remote hosts on a network. A ping object is first created
- with optional parameters, a variable number of hosts may be
- pinged multiple times and then the connection is closed.
-
- You may choose one of three different protocols to use for
- the ping. With the "tcp" protocol the _p_i_n_g() method
- attempts to establish a connection to the remote host's echo
- port. If the connection is successfully established, the
- remote host is considered reachable. No data is actually
- echoed. This protocol does not require any special
- privileges but has higher overhead than the other two
- protocols.
-
- Specifying the "udp" protocol causes the _p_i_n_g() method to
- send a udp packet to the remote host's echo port. If the
- echoed packet is received from the remote host and the
- received packet contains the same data as the packet that
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333))))
-
-
-
- was sent, the remote host is considered reachable. This
- protocol does not require any special privileges.
-
- If the "icmp" protocol is specified, the _p_i_n_g() method sends
- an icmp echo message to the remote host, which is what the
- UNIX ping program does. If the echoed message is received
- from the remote host and the echoed information is correct,
- the remote host is considered reachable. Specifying the
- "icmp" protocol requires that the program be run as root or
- that the program be setuid to root.
-
- FFFFuuuunnnnccccttttiiiioooonnnnssss
-
- Net::Ping->new([$proto [, $def_timeout [, $bytes]]]);
- Create a new ping object. All of the parameters are
- optional. $proto specifies the protocol to use when
- doing a ping. The current choices are "tcp", "udp" or
- "icmp". The default is "udp".
-
- If a default timeout ($def_timeout) in seconds is
- provided, it is used when a timeout is not given to the
- _p_i_n_g() method (below). The timeout must be greater than
- 0 and the default, if not specified, is 5 seconds.
-
- If the number of data bytes ($bytes) is given, that many
- data bytes are included in the ping packet sent to the
- remote host. The number of data bytes is ignored if the
- protocol is "tcp". The minimum (and default) number of
- data bytes is 1 if the protocol is "udp" and 0
- otherwise. The maximum number of data bytes that can be
- specified is 1024.
-
- $p->ping($host [, $timeout]);
- Ping the remote host and wait for a response. $host can
- be either the hostname or the IP number of the remote
- host. The optional timeout must be greater than 0
- seconds and defaults to whatever was specified when the
- ping object was created. If the hostname cannot be
- found or there is a problem with the IP number, undef is
- returned. Otherwise, 1 is returned if the host is
- reachable and 0 if it is not. For all practical
- purposes, undef and 0 and can be treated as the same
- case.
-
- $p->close();
- Close the network connection for this ping object. The
- network connection is also closed by "undef $p". The
- network connection is automatically closed if the ping
- object goes out of scope (e.g. $p is local to a
- subroutine and you leave the subroutine).
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-
-
-
- NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333))))
-
-
-
- pingecho($host [, $timeout]);
- To provide backward compatibility with the previous
- version of Net::Ping, a _p_i_n_g_e_c_h_o() subroutine is
- available with the same functionality as before.
- _p_i_n_g_e_c_h_o() uses the tcp protocol. The return values and
- parameters are the same as described for the _p_i_n_g()
- method. This subroutine is obsolete and may be removed
- in a future version of Net::Ping.
-
- WWWWAAAARRRRNNNNIIIINNNNGGGG
- _p_i_n_g_e_c_h_o() or a ping object with the tcp protocol use
- _a_l_a_r_m() to implement the timeout. So, don't use _a_l_a_r_m() in
- your program while you are using _p_i_n_g_e_c_h_o() or a ping object
- with the tcp protocol. The udp and icmp protocols do not
- use _a_l_a_r_m() to implement the timeout.
-
- NNNNOOOOTTTTEEEESSSS
- There will be less network overhead (and some efficiency in
- your program) if you specify either the udp or the icmp
- protocol. The tcp protocol will generate 2.5 times or more
- traffic for each ping than either udp or icmp. If many
- hosts are pinged frequently, you may wish to implement a
- small wait (e.g. 25ms or more) between each ping to avoid
- flooding your network with packets.
-
- The icmp protocol requires that the program be run as root
- or that it be setuid to root. The tcp and udp protocols do
- not require special privileges, but not all network devices
- implement the echo protocol for tcp or udp.
-
- Local hosts should normally respond to pings within
- milliseconds. However, on a very congested network it may
- take up to 3 seconds or longer to receive an echo packet
- from the remote host. If the timeout is set too low under
- these conditions, it will appear that the remote host is not
- reachable (which is almost the truth).
-
- Reachability doesn't necessarily mean that the remote host
- is actually functioning beyond its ability to echo packets.
-
- Because of a lack of anything better, this module uses its
- own routines to pack and unpack ICMP packets. It would be
- better for a separate module to be written which understands
- all of the different kinds of ICMP packets.
-
-
-
-
-
-
-
-
-
-
-
- Page 3 (printed 10/23/98)
-
-
-
-
-
-
- NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) NNNNeeeetttt::::::::PPPPiiiinnnngggg((((3333))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4 (printed 10/23/98)
-
-
-
-
-
-
-